Data transfer device



Aug. 22, 1967 L, R, HARPER 3,337,863

DATA TRANSFER DEVICE Original Filed May 27, 1958 N Sheets-Sheet 1 COLUMN READ PUNCH EMITTER STATION STATTON 1O 2 3 CONTROL ROW OUTPUT PANEL ENCODER DECODER TNPUT/OUTPUT COUNTER MATRIX 6 A l WORD SELECTED DECWAL ORDER DECIMAL TO BINARY ENCODER I ARITHMETIC UNIT 7 Y 7 MAGNETIC CORE MEMORY 1 TIMING PULSE GENERATOR SCANNING PULSE INVENTUR egNEigAToR LEONARD R HARPER Aug. 22, T967 L. R. HARPER DATA TRANSFER DEVICE 1,7 Sheets-Sheet 2 Original Filed May 27, 1958 i 2 3 4 5 6 7 8 9% H mm B M mm WW L. R. HARPER DATA TRANSFER DEVICE Original Filed May 27, 1958 1.7 Sheets-Sheet D Af/M /7 55' ksz 51% G2 G3 G4 G3 F|G.5c: F|G.5b FIGSc READ x WRITEX READ Y 4 5 F|G.5e g g g4 g4 g5 F|G.5g READ Y WRITE Y F|G5h 92 if 91 flf Aug. 22, 1967 L HARPER 3,33'Yfifi1! DATA TRANSFER DEVICE Original Filed May 27, 1958 l? Sheets-Sheet VIII Aug.'22, 1967 L. R. HARPER 3,3322%:

DATA TRANSFER DEVICE Original Filed May 27,. 1958 l7 Sheets-Sheet (5 Aug. 22, 1967 1.. R. HARPER DATA TRANSFER DEVICE l7 Sheets-Sheet Original Filed May 27, 1958 Aug. 22, 1967 L. R. HARPER DATA TRANSFER DEVICE Original Filed May 27, 1958 FE, Q

Sheets-Sheet 54 ,ss 64 X 63 1 E 113 /x E 80 ,swx v wm E F 44 W11 45 F? II Aug. 22, 1987 L, HARPER 3337,85 3

DATA TRANSFER DEVICE Original Filed May 27, 1958 1,7 Sheets-Sheet 1-1 Aug. 22, 1967 L. R. HARPER DATA TRANSFER DEVICE Original Filed May 27, 1958 B to? RHIA l7 Sheets-Sheet 1 Q g 22, 1967 L. R. HARPER 3,337,381

DATA TRANSFER DEVICE Original Filed May 27, 1958 l? Sheets-Sheet 1 1 1957 L. R. HARPER 3,337,861

DATA TRANSFER DEV I CE Original Filed May 27, 1958 1.7 Sheets-Sheet 12 Aug. 22, 1967 R. HARPER 3,337,861

7 DATA TRANSFER DEVICE Original Filed May 27, 1958 l7 Sheets-Sheet 1- L, R. HARPER Aug. 22, 1967 DATA TRANSFER DEVICE l7 Sheets-Sheet 14 Original Filed May 27 1958 g- 22, 1967 L. R. HARPER DATA TRANSFER DEVICE Sheets-Sheet 1 5 Original Filed May 27, 1958 1 E E K H h Aug. 22, 1967 L. R. HARPER 3,337,861

DATA TRANSFER DEVICE Original Filed May 2'7, 1958 l7 Sheets-Sheet W 1967 L. R. HARPER 3,337,861

DATA TRANS FER DEVICE l7 Sheets-Sheet 1'? E HG. m

Original Filed May 27, 1958 FEGJ3 3,337,861 DATA TRANSFER DEVICE Leonard R. Harper, Poughkeepsie, N.Y., assignor to International Business Machines Corporation, New York, N.Y., a corporation of New York Original application May 27, 1958, Ser. No. 738,199, now Patent No. 3,132,245, dated May 5, 1964. Divided and this application Dec. 29, 1961, Ser. No. 164,644

13 Claims. (Cl. 340347) This application is a division of copending application Ser. No. 738,199 filed May 27, 1958, and now Patent No. 3,132,245 issued May 5, 1964.

This invention relates to a data transfer device and more particularly to the transfer of data between statistical cards and a storage device.

I In calculating machines used in accounting work in which there is a limited number of operations to be performed, it is more important, rather than increasing the calculation speed, that the electronic circuits be simple and the components be sturdy to ensure a durable operation. It is quite obvious that the numeration system which best meets such conditions, is the binary system. However, data read from or recorded in statistical cards is generally coded in the decimal system. Consequently, decimal to binary encoding is required before data may be entered into the storage device while binary to decimal decoding is required after data is extracted from the storage device.

Accordingly, it is an object of the present invention to provide an improved data transfer device.

Another object of the invention is to convert a number expressed in one radix to another radix.

Still another object of the invention is to convert the orders of a decimal number to binary equivalents.

A further object of the invention is to convert the decimal digit values of the orders of a decimal number to.

their binary equivalents.

Another object of the invention is to convert a decimal number to a binary equivalent.

Still another object of the invention is to derive fromthe binary equivalent of a decimal number the digit values of the decimal orders in a 1244 code.

A further object of the invention is to convert a 1224 coded digit value to decimal code.

Another object of the invention is to convert a binary number to a decimal equivalent.

Still another object of the invention is to provide a novel selection matrix.

A further object of the invention is to provide a novel arrangement for a magnetic core memory.

Other objects of the invention will be pointed out in the following description and claims and illustrated in the accompanying drawings, which disclose, by way of example, the principle of the invention and the best mode, which has been contemplated, of applying that principle.

In the drawings:

FIG. 1 is a block diagram of the data transfer device of the present invention.

FIG. 2 illustrates the magnetic core storage and the decimal to binary encoder.

FIG. 3 is a timing diagram showing the signals appearing at various points of the system.

FIGS. 4 and 5a to 5h give an explanation of the scanning system of the storage and decimal to binary encoder.

FIGS. 6a to 6 assembled together as shown by FIG. 6, represents the general diagram of the data transfer device.

FIGS. 7 to represent the elementary circuits used in the device and their conventional representation in the general block diagram.

FIG. 16 is a timing diagram showing various signals of a counter of the device.

. United States Patent 0 3,337,861 Patented Aug. 22, 1967 General operation Referring to FIG. 1, the purpose of the recording or read in operation is to transfer binary coded data, which was read in decimal form by the read brushes at the read station 2 of a card reader, into magnetic core storage 1, while the purpose of the read out operation is to transfer decimal coded data, which was read from the magnetic core storage 1 in binary form, to the punch station 3 of a card punch.

These operations are performed under control of the input/output matrix 4, magnetic core decimal to binary encoder 5, counter 6 and arithmetic unit 7. Encoder 5 contains the binary equivalent of the various decimal orders. When in a column of a card the digit n is read from a particular row, the pulse received on the read brush corresponding to that particular row positions binary counter decimal digit 7 were sensed in the column corresponding to the hundreds order, then, the binary equivalent of 10 namely, 1100100 would be added into storage 7 times resulting in the value, 1010111100, which is the binary equivalent of the decimal number 700. The identification of the order to be affected to number n is performed through input/output matrix 4 and column emitter 10, through control panel 9. The column emitter 10 supplies pulses, available on the control panel at a rate of one per column of the card, to the input/output matrix 4 which is arranged in such a way that the matrix supplies on one output group, pulses corresponding to the various decimal orders, i.e. 10 10' 10, and on the other output group, pulses corresponding to the words, i.e. W1, W2 W16. Each order pulse conditions the switch of the corresponding magnetic core line of the encoder 5 while each word pulse conditions the switch of the magnetic core storage location in which the word is to be written or from which the word is to be read in order to allow the addition or the subtraction in the desired word of the number contained in this line of the encoder 5.

The read out operation is performed in a manner whereby the machine subtracts successively, from the word written in a line of the storage, the binary equivalent of the 10 powers in decreasing order. Binary counter 6 records the number of subtractions that it was possible to perform. The indication of counter 6 at the end of the operation is changed into a decimal by relay decoder 11 which ensures the picking up of punch electro magnets at the punch station 3.

During this read out operation, the input/ output matrix 4 and the column emitter 10 perform the same duty as during the recording operation. Thus, the pulses corresponding to the columns into which the word is to be punched are sent, through the control panel 9, to the input/ output matrix 4. The pulses received on the word outputs condition the line switch of the storage location which contains the word to be punched while the order pulses condition the line switches of the encoder 5, in which the equivalents of these orders are written in binary, in order to allow the subtraction of the content of the encoder line from the storage word.

Scanning pulse generator 13 is a common generator for both the storage 1 and the encoder 5 while the timing pulse generator 42 provides the pulses which are necessary at the various times illustrated in FIG. 3.

Decimal-binary encoding Referring to FIG. 2, storage 1 consists of a magnetic core matrix in which the recording is performed through the coincidence of column and row half-currents. In the machine, a Word stored in storage 1 will be referred to as word Y while a word stored in the encoder will be referred to as word X. In a writing operation Word X, which is in the encoder 5 serves as the addend while word Y which is addressed by the input/ output matrix 4 serves as the augend, the sum word being written into the storage position in which word Y is stored.

The timing of the operations of the machine is such that a bit of word X is read, stored in the arithmetic unit 7 and regenerated, after which, the corresponding bit of Word Y is read and added to the bit of word X in the arithmetic unit 7, the resultant bit being written back into bit position Y. To this end, the machine timing system supplies the pulses shown in FIG. 3. A multivibrato-r (not shown) supplies the base signals indicated by MV and starting from these signals, the timing circuits in the timing pulse generator 42 supply pulses CPB, CPC, CPD, A, B, X, Y, C, D, T1, T2, etc.

The time interval during which oscillation A is at a high level is a time during which a bit of word X or word Y is read out of encoder 5 or storage 1, respectively, and applied to the arithmetic unit 7; it will be referred to as read time or time A. Also, the time interval during which oscillaton B is at a high level is the one during which a bit of information is regenerated in a Word X position of the encoder 5 or a bit of information from the arithmetic unit 7 is written in a word Y position of storage 1. Identification is the same for times X and Y during which bits of information, respectively, concerning words X and Y, are read and written, that is, time A is the time when a bit of information is read from a Word X or word Y position and time B is the time when a bit of information is written into a corresponding word X or Word Y position, respectively. Times C and D correspond to the reading and the writing of the cores of the successive columns of the matrix and encoder. Designations 1D, 3D, 5D, etc. 31D will be given to the successive times during which the level of pulses D is high, .and :D, 2D, 4D etc. 30D to the successive times during which the level of pulses C is high. The timing generator also supplies pulses existing only during one of the times or even during a portion of one of these times during which pulse X or Y is at a high level.

In addition to these pulses, a chain of triggers forming a ring counter of the type defined in the Proceedings of the IRE; volume 44; No. 9; September 1956; page 1169, in the timing pulse generator 42 supplies under the control of the main multivibrator, 16 pulses T1, T2 T16, only T1 and T2 of which are shown on the diagram. To these basic pulses and times, have been added in g1, g2, g3, g4 the combinations which have been made with them for operating the matrix 1 and the encoder 5 which are now to be considered.

Referring now to FIG. 2, the storage 1 consists of a 16-row and 32-column magnetic core matrix in which information is recorded .at a rate of one Word per row, while the encoder 5 consists of 32 columns, corresponding to those of the storage 1, and 10 rows having magnetic cores located at predetermined positions. Nine of the ten rows of the encoder 5 correspond to successive powers (0 through 8) of 10 while 30 of the 32 columns correspond to succesive powers (0 through 29) of 2. The 10th row of the encoder 5 and the 32nd column of both the storage 1 and encoder 5 consist of a cancel line having cores placed thereon corresponding to each row of the storage 1 and predetermined rows and columns of the encoder 5. The cores are arranged in the encoder 5 in such a way that it is possible to read out on the columns the binary equivalent of the 10 powers read in on the rows. Thus, in row 10 there are cores in the 2nd, 5th and 6th columns (10 =2 +2 +2 =1l00'10()). The encoder 5 cores permanently contain 1". bit representation. Each core of storage 1 except those on the cancel column is threaded by a column read wire, a column write wire, a row read wire, a row write wire and a sense wire while the cores on the cancel wire are threaded by the sense wire and the row wire and are provided to minimize the effects of half select current pulses induced on the sense wire S. The sense wire S is wound through the matrix in checkerboard fashion to also minimize noise (due to half select current pulses) inducted on the sense wire S. Thus, due to the addition of the cancel core in each row of the storage 1, the sense wire S passes through 16 of the cores in each row in one sense and the remaining 16 cores in the opposite sense. Hence, when a half select current pulse is applied to a selected row and column of the storage 1, one of the cores on the selected row is selected or switched while the remaining 31 cores are half selected. The magnetic effect due to half selection of 16 of the cores is virtually cancelled by the opposite magnetic effect due to the half selection of the remaining 15 cores of the selected row.

It will be noted that a column drive line as for example, line 250 goes up through 16 cores of the storage 1 and a predetermined number in the encoder 5 and then down through a predetermined number in encoder 5 and 16 cores of the storage 1. A core is provided on the cancel row so that the drive line will pass through an even number of cores and the sense wire S is wound through the cores of the encoder 5 in such a manner as to minimize the noise induced on the sense wire S due to the half selection current pulse on a column drive line. Similarly cores are provided at predetermined points on the vertical cancel line in the encoder 5 and due to the direction in which the sense wire passes through the cores of a row of the encoder 5 noise induced in the sense wire S due to the half selection current pulse on a row drive line is minimized.

In order to enter into storage 1, assuming it to be cleared, in binary a number read in decimal, as for example, the number 300, the switch of line 10 of the encoder 5 is first closed and, through the scanning circuits 13, the first bit position of line 10 is scanned and its value is stored in the arithmetic unit 7. Then, the switch of a selected line in storage 1 is closed and the corresponding bit position of the selected line is scanned and its value (0) is added to the bit from the corresponding position of the line 10 in the encoder 5 in the arithmetic unit 7 and the resultant bit is stored in the same bit position of the selected line.

Through scanning circuits 13 of storage 1 and encoder 5, and through the arithmetic unit 7, the corresponding bits are added, column after column, starting with the lowest power of 2, so that at the end of the machine cycle, the content ofline 10 of the encoder 5 is stored in the selected line of the storage 1. Since in row 10 of the encoder 5, there are cores only in columns 2 2 and 2 the storage, at the end of the operation actually contains the binary equivalent of 100. Through performing this operation three times, the binary equivalent of 300 will have been written. In order to read out a word from the storage, the process is similar, the arithmetic unit instructing to subtract, binary element after binary element, the content of a line of the decoder of a storage word.

Storage scanning Refer now to FIGS. 4 and 5 in order to see how the scanning system of storage 1 and encoder Sa-Sh operates. FIGS. 4 and 5 show only four magnetic cores for purposes of explanation, two of which (cores A and C) may belong to the word addressed on time X, or word X, and the other two (cores B and D) belong to word Y. The wires proceeding from pulse generators G3 and G4 twice cross, not two rows of cores, but the 16 rows of the storage and the 9 rows of the encoder 5, each wire going one way through a column, and the following or the preceding one in the other Way. The generators are operative only when the corresponding switches are closed. In the present case, switches S4 and S5 are closed on times X, switches S4 and S5 on times Y, switches S1 and 82 on one of times T1, T2, etc. or T16 (see time table). It should be noted that if cores A and C belong to a line of encoder 5 and cores B and D to a line of the storage 1, switches S4 and S5 are closed by the order pulses and switches S4 and S5 by the word pulses of the input/output matrix 4. It will be assumed that the currents travel from the pulse generators to ground.

FIG. 3 shows the current pulses g1, g2, g3 and g4, respectively supplied by pulse generators G1, G2, G3, G4, and in FIGS. 5a to 5h the state of the magnetization currents of cores A, B, C, D of FIG. 4 during the 8 successive periods of the basic ,multivibrator in which switches S1 and S2 will be closed, i.e. during time T1 of the primary chain it the first two columns of the matrix and encoder are concerned. The diagrams and figures show that the binary information are successively read and written cores A, B, C, D. Thus, referring to FIGS. 3, 4 and 5a, during read time (A time) of word X, switches S1, S2, S4 and S5 are closed and half select current pulses are applied from generators G1 and G3. Core A is switched since the half select current pulses pass in the same direction through the core. No effect is sensed in core C since the half select current pulses from generators G1 and G3 pass in the opposite sense through the core C. Cores B and D are half selected due to the half select current pulse from generator G3. However, they are half selected in opposite senses so that no noise would appear on the sense wire.

Now, referring to FIG. 5b, during write time (B time) of word X, switches S1, S2, S4 and S5 remain closed and half select current pulses are applied from generators G2 and G4. Core A is switched since the half select current pulses pass in the same direction (opposite to that during read time) through the core. Again, no effect is sensed in core C since the half select current pulses from generators G2 and G4 pass in opposite sense through core C. Also, again, cores B and D are half selected due to the half select current pulse from generator G4.

Now, referring to FIG. 50, during read time (A time) of word Y, switches S1 and S2 remain closed, S4 and S5 are opened and S4 and S5 are closed and half select current pulses are applied from generators G1 and G3. Core B is switched since the half select current pulses pass in the same direction through the core. No effect is sensed in core D since the half select current pulses from generators G1 and G3 pass in opposite sense through the core D. Cores A and C are half selected due to the half select current pulse from generator G3. However, they are half selected in the opposite sense so that no noise would appear on the sense wire.

Now, referring to FIG. 5d, during write time (B time) of word Y, switches S1, S2, S4 and S5 remain closed and half select current pulses are applied from generators G2 and G4 only if it is desired to Write a 1 bit in this core. Core B is switched since the half select current pulses pass in the same direction (opposite to that during read time) through the core. Again, no effect is sensed in core D since the half select current pulses from generators G2 and G4 pass in opposite sense through core D. Also, again, cores A and C are half selected due to the half select current pulse from generator G4.

Now, referring to FIG. 52, during read time (A time) of word X, switches S1 and S2 remain closed, S4 and S5 are opened and S4 and S5 are closed and half select current pulses are applied from generators G1 and G4. Hence, in a manner similar to that previously described, only core C is switched. Following this, half select current pulses are applied from generators G2 and G3 to switch core C back to its original state as shown in FIG. 5 Similarly, core D is switched from one state to the other and then back as shown in FIGS. 5g and 5h.

It should be noted that generator G1 always operates as a read driver while generator G2 always operates as a write driver. Also, generators G3 and G4 alternate as a read and write driver. Thus, generator G3 operates as a read driver for odd columns and as a write driver for even columns whereas generator G4 operates as a write driver for odd columns and as a read driver for even columns. Such an arrangement avoids the requirement of a current pulse generator for each column.

These operations are repeated according to the same sequence for the other columns of the matrix during times T2 T16, thus allowing the scanning of the 32 columns of the matrix and encoder.

Basic circuits Before undertaking the general description of the present invention with the data transfer device as a whole, the basic circuits and their conventional representation will be described, the latter bearing the figure number of the corresponding circuit, with symbol a.

FIG. 7 shows a diode AND circuit with two inputs; FIG. 8 shows a capacitance resistor diode gate and FIG. 9 shows a diode OR circuit with two inputs.

FIG. 10 represents a switch including a PNP transistor with input through the base and output through the collector.

FIG. 11 shows an inverter comprising a capacitance resistor input, a NPN transistor and an output on the collector resistor with a diode preventing the collector potential from exceeding that of the ground. Also, the terminal connected to the emitter may be used as a control terminal.

FIG. 12 represents an emitter follower comprising a PNP transistor having an output on the emitter resistor.

FIG. 13 shows a trigger having 4 PNP transistors 14, 15, 16, 17 in which the collectors of transistors 14 and 16 are respectively connected to the bases of transistors 16 and 14 through transistors 15 and 17 wired as emitter follower. The inputs are made through terminals 18 and 19 and the outputs through terminals 20 and 21, the reset of the trigger through terminal 20. Each input may comprise one or more diode gates having a resistor and capacitance similar to that represented in FIG. 8. FIG. 13b represents a trigger of the preceding type the input of which comprises a diode gate indicated by a small diamond. It should be kept in mind that the trigger is reset when the level of its right output is low and that it is ON when the level of its right output is high. When only one diamond is shown at the side of the trigger it is implied that the other control terminal of the diode gate is internally connected to the emitter of the associated emitter follower.

FIG. 14 represents the diagram of pulse generator for reading and recording information from the magnetic core matrix. This device is controlled by timing pulses sent to input 23. It comprises a PNP transistor 24 picked up at the base. The potential variations of the collector are applied to a NPN transistor 25 the load of which is split between the emitter and the collector, the emitter voltage being applied through a capacitance and a series resistor to the emitter of transistor 24. This connection results in extending the action of the pulse applied in 23 to transis tor 24, the circuit operating in single shot.

FIG. 15 represents a pulse generator or more particularly a monostable comprising 2 additional transistors 25 and 26. Assume that 25 is NPN and 26 PNP. When a positive pulse is sent to input 27, transistor 25 is saturated, its collector potential decreases, thus bringing to saturation transistor 26. The emitter potential of the latter is transmitted to the emitter of transistor 25 through a resistor and a capacitance. Capacitance C unloads in the circuit made up of resistor R, transistor 25 and the base emitter junction of transistor 26. When the discharge current is no longer suflicient to saturate transistor26, 

3. IN A DATA TRANSFER DEVICE A RADIX CONVERTER CONSISTING OF AN ARRAY ARRANGED IN ROWS AND COLUMNS OF WIRES WITH THE ROWS REPRESENTING THE POWERS OF A FIRST RADIX AND THE COLUMNS REPRESENTING THE POWERS OF A SECOND RADIX INCLUDING MAGNETIC CORES LOCATED AT THE INTERSECTION OF PREDETERMINED ONES OF SAID ROWS AND COLUMNS, MEANS FOR SELECTIVELY ENERGIZING JOINTLY A PREDETERMINED ROW AND THE COLUMNS OF SAID ARRAY AND MEANS ASSOICATED WITH SAID ARRAY AND RESPONSIVE TO SAID SELECTIVE ENERGIZINGS FOR PRODUCING SIGNALS REPRESENTING THE SECOND RADIX EQUIVALENT OF THE PREDETERMINED FIRST RADIX POWER. 